(function ($) {
  $.extend({
    time: function (date) {
      if (!date) {
        date = new Date();
      }
      var returnObj = {
        date: date,
        /**
         * 获取当前时间的时间戳
         */
        getTimestamp: function () {
          return date.getTime();
        },
        /**
         * 获取年份(四位数，如2001)
         */
        getYear: function () {
          return date.getFullYear();
        },
        /**
         * 获取月份(1-12)
         */
        getMonth: function () {
          return date.getMonth() + 1;
        },
        /**
         * 获取属于一个月中第几天（1-31）
         */
        getDay: function () {
          return date.getDate();
        },
        /**
         * 获取日期（1-31）
         */
        getHours: function () {
          return date.getHours();
        },
        /**
         * 获取属于一个月中第几天（1-31）
         */
        getMinutes: function () {
          return date.getMinutes();
        },
        /**
         * 获取日期（1-31）
         */
        getSeconds: function () {
          return date.getSeconds();
        },
        /**
         * 获取日期（1-31）
         */
        getMilliseconds: function () {
          return date.getMilliseconds();
        },
        /**
         * 获取属于一周中第几天（0-6，星期天用0表示）
         */
        getDayOfWeek: function () {
          return date.getDay();
        },
        /**
         * 获取属于一周中第几天(中文表示)
         */
        getDayOfWeekCn: function () {
          var week = [
            "星期天",
            "星期一",
            "星期二",
            "星期三",
            "星期四",
            "星期五",
            "星期六",
          ],
            day = date.getDay();
          return week[day];
        },
        /**
         * 获取时间格式化集合
         */
        getFormatStyle: function (sep) {
          if (!sep) {
            sep = "/";
          }
          var fillZero = function (num) {
            return num > 10 ? "" + num : "0" + num;
          }
          var yyyy = this.getYear();
          var MM = this.getMonth();
          var dd = fillZero(this.getDay());
          var HH = fillZero(this.getHours());
          var MM = fillZero(this.getMinutes());
          var ss = fillZero(this.getSeconds());
          var zz = this.getMilliseconds();
          var part1 = [yyyy, MM, dd].join(sep);
          var part2 = [HH, MM, ss].join(":");
          return {
            style1: part1,
            style2: part2,
            style3: [part1, part2].join(" "),
            style4: [part1, " ", part2, ".", zz].join("")
          };
        }
      };
      return returnObj;
    },
  });
})(jQuery);
